#ifndef CCUBE_H
#define CCUBE_H

#include "SShader/CShaderObject.h"
#include "SM/MatriceGL.h"
#include "Typecube.h"
#include <iostream>
using std::string;
using SM::MatriceGL;
using SShader::CShaderObject;

class CCube
{
private:
    float *pfCubeArray;
    int *piPosition;    //[3]
    int eCategory;
    CShaderObject *ShaderObject;

public:
    CCube();
    CCube(string sName);
    CCube(string sNameVertex, string sNameFragment);
    CCube(const CCube &copie) ;
    ~CCube();

    void setType(int iType) ;
    void setShader(string sName);
    void setShader(string sNameVertex, string sNameFragment);
    void setPosition(int _iX, int _iY, int _iZ);
    int* getPosition() const;
    void Initialize();
    void addMatrix(const string &_NameMatrix, MatriceGL *_Matrix);
    void Play();

private:
    void InitializeCube();
};
#else
class CCube;
#endif // CCUBE_H
